Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • View renderedDownload


lang/README.it.md dead9b09210ecfd892cff7ffc3fcdc760b9abdb8 (dead9b09) Text, 8.54 KB

Tc9d1d9# Reticulum MeshChatX

Un fork ampiamente modificato e ricco di funzionalita di Reticulum MeshChat di Liam Cottle.

Questo progetto e indipendente dal progetto originale Reticulum MeshChat e non e affiliato ad esso.

Tff7b72- Codice sorgente: [Tff7b72git.quad4.io/RNS-Things/MeshChatX](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX)
Tff7b72- Release: [Tff7b72git.quad4.io/RNS-Things/MeshChatX/releases](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX/releases)
Tff7b72- Changelog: [Ta5d6ff`CHANGELOG.md`](../CHANGELOG.md)
Tff7b72- TODO: [Ta5d6ff`TODO.md`](../TODO.md)
Tff7b72- [Tff7b72English README](Te6edf3../README.md) | [Tff7b72Deutsch](Te6edf3README.de.md) | [Tff7b72Русский](Te6edf3README.ru.md) | [Tff7b72中文](Te6edf3README.zh.md) | [Tff7b72日本語](Te6edf3README.ja.md)

Tc9d1d9## Note importanti

Tff7b72- Il supporto completo LXMF e un obiettivo centrale del progetto.
Tff7b72- L'archiviazione e le migrazioni sono state progressivamente rielaborate verso SQL diretto (sostituendo i percorsi legacy Peewee ORM).

Tff7b72> [!WARNING]
Tff7b72> MeshChatX non garantisce la compatibilita dei dati con le versioni precedenti di Reticulum MeshChat. Eseguire un backup prima della migrazione o dei test.

Tff7b72> [!WARNING]
Tff7b72> I sistemi legacy non sono ancora completamente supportati. Requisiti minimi attuali: Python `>=3.11` e Node `>=24`.

Tc9d1d9## Demo e screenshot

<video src="https://strg.0rbitzer0.net/raw/62926a2a-0a9a-4f44-a5f6-000dd60deac1.mp4" controls="controls" style="max-width: 100%;"></video>

Tc9d1d9### Interfaccia

![Tff7b72Telefono](Te6edf3../screenshots/phone.png)
![Tff7b72Visualizzatore di rete](Te6edf3../screenshots/network-visualiser.png)
![Tff7b72Archivi](Te6edf3../screenshots/archives.png)
![Tff7b72Identita](Te6edf3../screenshots/identities.png)

Tc9d1d9## Requisiti

Tff7b72- Python Ta5d6ff`>=3.11` (da Ta5d6ff`pyproject.toml`)
Tff7b72- Node.js Ta5d6ff`>=24` (da Ta5d6ff`package.json`)
Tff7b72- pnpm Ta5d6ff`10.32.1` (da Ta5d6ff`package.json`)
Tff7b72- Poetry (utilizzato in Ta5d6ff`Taskfile.yml` e nei workflow CI)

Tc9d1d9## Nix (flake.nix)

Il repository include un Nix flake in Ta5d6ff`flake.nix`.

Tc9d1d9### Entrare nella dev shell

Ta5d6ff```Ta5d6ffbash
nix develop
Ta5d6ff```

Tc9d1d9### Compilare il pacchetto Nix predefinito

Ta5d6ff```Ta5d6ffbash
nix build .#default
Ta5d6ff```

Tc9d1d9### Flusso di lavoro tipico dentro `nix develop`

Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```

Tc9d1d9## Metodi di installazione

| Metodo | Include frontend | Architetture | Ideale per |
| ------------------------- | -------------------- | ------------------------------------------- | -------------------------------------------------- |
| Immagine Docker | Si | Ta5d6ff`linux/amd64`, Ta5d6ff`linux/arm64` | Avvio rapido su server Linux |
| Python wheel (Ta5d6ff`.whl`) | Si | Qualsiasi architettura supportata da Python | Installazione headless/web-server senza build Node |
| Linux AppImage | Si | Ta5d6ff`x64`, Ta5d6ff`arm64` | Uso desktop portatile |
| Pacchetto Debian (Ta5d6ff`.deb`) | Si | Ta5d6ff`x64`, Ta5d6ff`arm64` | Installazione Debian/Ubuntu |
| Pacchetto RPM (Ta5d6ff`.rpm`) | Si | Dipende dal CI | Fedora/RHEL/openSUSE |
| Da sorgente | Compilato localmente | Architettura host | Sviluppo e build personalizzati |

Note:

Tff7b72- Il workflow di release compila esplicitamente Linux Ta5d6ff`x64` e Ta5d6ff`arm64` AppImage + DEB.
Tff7b72- RPM viene anche tentato e caricato quando prodotto con successo.

Tc9d1d9## Avvio rapido: Docker

Ta5d6ff```Ta5d6ffbash
docker compose up -d
Ta5d6ff```

Il file compose predefinito mappa:

Tff7b72- Ta5d6ff`127.0.0.1:8000` sull'host -> porta Ta5d6ff`8000` del container
Tff7b72- Ta5d6ff`./meshchat-config` -> Ta5d6ff`/config` per la persistenza

In caso di errori di permessi:

Ta5d6ff```Ta5d6ffbash
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Ta5d6ff```

Tc9d1d9## Installazione da artefatti di release

Tc9d1d9### 1) Linux AppImage (x64/arm64)

Tff7b721. Scaricare Ta5d6ff`ReticulumMeshChatX-v<versione>-linux-<arch>.AppImage` dalle release.
Tff7b722. Rendere eseguibile e avviare:

Ta5d6ff```Ta5d6ffbash
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
Ta5d6ff```

Tc9d1d9### 2) Debian/Ubuntu `.deb` (x64/arm64)

Tff7b721. Scaricare Ta5d6ff`ReticulumMeshChatX-v<versione>-linux-<arch>.deb`.
Tff7b722. Installare:

Ta5d6ff```Ta5d6ffbash
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
Ta5d6ff```

Tc9d1d9### 3) Sistemi RPM

Tff7b721. Scaricare Ta5d6ff`ReticulumMeshChatX-v<versione>-linux-<arch>.rpm` se presente nella release.
Tff7b722. Installare:

Ta5d6ff```Ta5d6ffbash
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
Ta5d6ff```

Tc9d1d9### 4) Python wheel (`.whl`)

I wheel delle release includono gli asset web compilati.

Ta5d6ff```Ta5d6ffbash
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchat --headless
Ta5d6ff```

Ta5d6ff`pipx` e supportato:

Ta5d6ff```Ta5d6ffbash
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Ta5d6ff```

Tc9d1d9## Esecuzione da sorgente (modalita web server)

Ta5d6ff```Ta5d6ffbash
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run meshchat --headless --host T79c0ff127.0.0.1
Ta5d6ff```

Tc9d1d9## Esecuzione in sandbox (Linux)

Per eseguire il binario nativo Ta5d6ff`meshchat` con isolamento aggiuntivo del filesystem, puoi usare **Firejail** o **Bubblewrap** (Ta5d6ff`bwrap`) mantenendo l'accesso di rete normale per Reticulum e l'interfaccia web. Esempi completi (pip/pipx, Poetry, note sulla seriale USB) sono in:

Tff7b72- [Ta5d6ff`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)

La stessa pagina compare nell'elenco **Documentazione** in-app (documentazione MeshChatX) quando viene servita dai file Ta5d6ff`meshchatx-docs` inclusi o sincronizzati.

Tc9d1d9## Compilazione pacchetti desktop da sorgente

Tc9d1d9### Linux x64 AppImage + DEB

Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-x64
Ta5d6ff```

Tc9d1d9### Linux arm64 AppImage + DEB

Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-arm64
Ta5d6ff```

Tc9d1d9### RPM

Ta5d6ff```Ta5d6ffbash
pnpm run dist:rpm
Ta5d6ff```

Tc9d1d9## Supporto architetture

Tff7b72- Docker: Ta5d6ff`amd64`, Ta5d6ff`arm64`
Tff7b72- Linux AppImage: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Linux DEB: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Windows: Ta5d6ff`x64`, Ta5d6ff`arm64` (script di build disponibili)
Tff7b72- macOS: script di build disponibili (Ta5d6ff`arm64`, Ta5d6ff`universal`)
Tff7b72- Android: progetto e workflow CI presenti nel repository

Tc9d1d9## Android

Tff7b72- [Ta5d6ff`docs/meshchatx_on_android_with_termux.md`](../docs/meshchatx_on_android_with_termux.md)
Tff7b72- [Ta5d6ff`android/README.md`](../android/README.md)

Tc9d1d9## Configurazione

| Argomento | Variabile d'ambiente | Predefinito | Descrizione |
| --------------- | ---------------------- | ----------- | ------------------------------------- |
| Ta5d6ff`--host` | Ta5d6ff`MESHCHAT_HOST` | Ta5d6ff`127.0.0.1` | Indirizzo del web server |
| Ta5d6ff`--port` | Ta5d6ff`MESHCHAT_PORT` | Ta5d6ff`8000` | Porta del web server |
| Ta5d6ff`--no-https` | Ta5d6ff`MESHCHAT_NO_HTTPS` | Ta5d6ff`false` | Disattiva HTTPS |
| Ta5d6ff`--headless` | Ta5d6ff`MESHCHAT_HEADLESS` | Ta5d6ff`false` | Non aprire il browser automaticamente |
| Ta5d6ff`--auth` | Ta5d6ff`MESHCHAT_AUTH` | Ta5d6ff`false` | Attiva autenticazione base |
| Ta5d6ff`--storage-dir` | Ta5d6ff`MESHCHAT_STORAGE_DIR` | Ta5d6ff`./storage` | Directory dei dati |
| Ta5d6ff`--public-dir` | Ta5d6ff`MESHCHAT_PUBLIC_DIR` | auto | Directory dei file frontend |

Tc9d1d9## Branch

| Branch | Scopo |
| -------- | --------------------------------------------------------------------- |
| Ta5d6ff`master` | Release stabili. Solo codice pronto per la produzione. |
| Ta5d6ff`dev` | Sviluppo attivo. Potrebbe contenere modifiche instabili o incomplete. |

Tc9d1d9## Sviluppo

Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```

Tc9d1d9## Sicurezza

Tff7b72- [Ta5d6ff`SECURITY.md`](../SECURITY.md)
Tff7b72- Controlli di integrita integrati e HTTPS/WSS predefiniti
Tff7b72- Workflow di scansione CI in Ta5d6ff`.gitea/workflows/`

Tc9d1d9## Aggiungere una lingua

Il rilevamento delle lingue e automatico. Per aggiungere una nuova lingua basta un singolo file JSON:

Tff7b721. Generare un modello da Ta5d6ff`en.json`:

Ta5d6ff```Ta5d6ffbash
python scripts/generate_locale_template.py
Ta5d6ff```

Tff7b722. Rinominare e spostare nella cartella delle lingue:

Ta5d6ff```Ta5d6ffbash
mv locales.json meshchatx/src/frontend/locales/xx.json
Ta5d6ff```

Tff7b723. Impostare Ta5d6ff`_languageName` all'inizio del file con il nome nativo della lingua (es. Ta5d6ff`"Espanol"`, Ta5d6ff`"Francais"`).

Tff7b724. Tradurre tutti i valori rimanenti.

Tff7b725. Verificare la corrispondenza delle chiavi: Ta5d6ff`pnpm test -- tests/frontend/i18n.test.js --run`

Nessuna altra modifica al codice necessaria.

Tc9d1d9## Crediti

Tff7b72- [Tff7b72Liam Cottle](Te6edf3https://github.com/liamcottle) - Reticulum MeshChat originale
Tff7b72- [Tff7b72RFnexus](Te6edf3https://github.com/RFnexus) - Parser Micron JavaScript
Tff7b72- [Tff7b72markqvist](Te6edf3https://github.com/markqvist) - Reticulum, LXMF, LXST


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────